home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-17 / rumdjet.zip / RUMMAN.STY < prev   
Text File  |  1989-04-14  |  23KB  |  515 lines

  1. % This is RUMMAN.STY by W. Kaspar Univ. M\"unster, Version 1.0 of 14.04.1989
  2. % derived from REFMAN.STY by H.Partl, TU Wien, Version 1.0 of 25 Nov 1988.
  3. %
  4. % Changes in: footnotes, headings, footings, title
  5. %
  6. % Document Style Option to `article' and `report',
  7. % for technical reference manuals, users' guides and articles,
  8. % with a design similar to that of the PostScript Reference Manual:
  9. %     All pages have a wide left margin and no right margin, and section
  10. %     headings and other `guiding' material appear in that margin.
  11. % Supports one-column only. REFMAN should be specified as the LAST
  12. % optional argument of the \documentstyle command, e.g.
  13. %     \documentstyle[11pt,twoside,german,refman]{article}
  14. %
  15. % It CAN be used with twoside, fleqn and others.
  16. % It can NOT be used with twocolumn, titlepage, fullpage, a4, a4wide
  17. % and others.
  18. %
  19. % +-----------------------------------------------------------------+
  20. % ! This style file has been designed for reference manuals, users' !
  21. % ! guides, short instants, and related papers at the EDP centre of !
  22. % ! the Technical University of Vienna. It must be re-designed and  !
  23. % ! changed before application at any other institution or for any  !
  24. % ! other purpose.                                                  !
  25. % +-----------------------------------------------------------------+
  26. % Copyright H.Partl TU Wien 1988.
  27.  
  28. % Process this file only once:
  29. \@ifundefined{leftmarginwidth}{}{\endinput}
  30.  
  31. \typeout{ RUMman Style -  Version 1.0 as of 14.04.1989}
  32.  
  33. \newdimen\leftmarginwidth % value of odd & evensidemargin, set below.
  34. \newdimen\fullwidth % = \textwidth + \leftmarginwidth
  35. \newdimen\emptyheadtopmargin % used by some pagestyles
  36. \newdimen\emptyfoottopmargin % dto.
  37.  
  38. % \longhrule and \longthickhrule are defined for \hrule's of width \fullwidth
  39.  
  40. \def\longhrule{\par\hbox to \linewidth{\hss
  41.                \vrule width \fullwidth height 0.4pt depth 0pt}\par}
  42. \def\longthickhrule{\par\hbox to \linewidth{\hss
  43.                \vrule width \fullwidth height 1.0pt depth 0pt}\par}
  44.  
  45. % Re-definitions of the \section commands to use \fullwidth and smaller
  46. % vertical skips and smaller fonts.
  47. % (Note that the afterskip must be >zero, not =zero)
  48.  
  49. \def\secshape{\leftskip=-\leftmarginwidth % use \fullwidth
  50.               \rightskip=\@flushglue % raggedright
  51.               \hyphenpenalty=2000} % no hyphenation
  52.  
  53. \def\section{\@startsection {section}{1}{\z@}{-2ex plus -1ex minus
  54.     -.2ex}{0.5ex plus .2ex}{\secshape\large\bf}}
  55. \def\subsection{\@startsection{subsection}{2}{\z@}{-1.5ex plus -.5ex minus
  56.    -.2ex}{0.5ex plus .2ex}{\secshape\normalsize\bf}}
  57. \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-1.5ex plus
  58. -.5ex minus -.2ex}{0.5ex plus .2ex}{\secshape\normalsize\rm}}
  59. \def\paragraph{\@startsection
  60.      {paragraph}{4}{\z@}{2ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}}
  61. \def\subparagraph{\@startsection
  62.      {subparagraph}{4}{\parindent}{2ex plus 1ex minus
  63.      .2ex}{-1em}{\normalsize\bf}}
  64.  
  65. % For ARTICLE:
  66. % Re-definitions of \maketitle and \part (\clearpage, \fullwidth, \hrules).
  67. % This \maketitle prints the \title only.
  68. % A \makeauthor command is defined to print the \author (to be used either
  69. % just after \maketitle or at the end of the article, without \thanks).
  70.  
  71. \def\@redefinemaketitle{
  72.  
  73. \def\maketitle{\par
  74.  \begingroup
  75.    \if@twocolumn
  76.      \twocolumn[\@maketitle]
  77.      \else \newpage
  78.      \global\@topnum\z@        % Prevents figures from going at top of page.
  79.      \@maketitle \fi\thispagestyle{empty}     % RUM
  80.  \endgroup
  81.  \setcounter{footnote}{0}}
  82.  
  83. \def\@maketitle{\clearpage
  84.      \bigskip                                                      % RUM
  85.      {\secshape\parskip\z@\parindent\z@ \Large\bf \@title\par}     % RUM
  86.      \bigskip\bigskip}                                             % RUM
  87.  
  88. \def\makeauthor{\par\nopagebreak\vskip 2ex plus 1ex minus 1ex
  89.      \begin{flushright}\normalsize\sl \@author \end{flushright}\par
  90.      \vskip 2ex plus 1ex minus 1ex\relax }
  91.  
  92. \def\and{\\*}
  93. \def\thanks{\footnote}
  94.  
  95. % In \part, only \thepart (the Roman part number) is printed, without
  96. % the word `Part' in front of it, and \markboth is replaced by \@mkboth
  97. % to preserve the marks with the myheadings and myfootings page styles.
  98.  
  99. \def\part{\par \clearpage \thispagestyle{plain}
  100.           \@afterindentfalse \secdef\@part\@spart}
  101.  
  102. \def\@part[##1]##2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{part}
  103.      \addcontentsline{toc}{part}{\thepart \hspace{1em}##1}\else
  104.      \addcontentsline{toc}{part}{##1}\fi
  105.      \longhrule\medskip
  106.      {\secshape\parskip\z@\parindent\z@ \Large\rm
  107.      \ifnum \c@secnumdepth >\m@ne \thepart.\quad \fi ##2\par}
  108.      \medskip\longhrule\bigskip \@mkboth{}{}\@afterheading }
  109.  
  110. \def\@spart##1{\longhrule\medskip
  111.      {\secshape\parskip\z@\parindent\z@ \Large\rm ##1\par}
  112.      \medskip\longhrule\bigskip \@afterheading }
  113.  
  114. } % end of \@redefinemaketitle
  115.  
  116. % For REPORT:
  117. % Re-definition of \chapter (\clearpage, \fullwidth, \hrules).
  118. % However, \maketitle and \part remain unchanged.
  119.  
  120. \def\@redefinechapter{
  121.  
  122. \def\@makechapterhead##1{\longthickhrule\bigskip
  123.      {\secshape\parskip\z@\parindent\z@ \Large\bf
  124.       \ifnum \c@secnumdepth >\m@ne \@chapapp{} \thechapter.\quad \fi
  125.       ##1\par}
  126.       \bigskip\longthickhrule\bigskip}
  127.  
  128. \def\@makeschapterhead##1{\longthickhrule\bigskip
  129.      {\secshape\parskip\z@\parindent\z@ \Large\bf ##1\par}
  130.      \bigskip\longthickhrule\bigskip}
  131.  
  132. % No word `Chapter'/`Kapitel' before the chapter number, but the word
  133. % `Appendix'/`Anhang' will still be inserted after \appendix !
  134. \def\@chapapp{}
  135.  
  136. % Note that \chapter itself is defined like this:
  137. % \def\chapter{\clearpage \thispagestyle{plain} \global\@topnum\z@
  138. % \@afterindentfalse \secdef\@chapter\@schapter}
  139. % This definition and those of \@chapter and \@schapter remain unchanged.
  140.  
  141. } % end of \@redefinechapter
  142.  
  143. % Now, do either the first one or the second one, depending on the main
  144. % document style (article= \chapter undefined, or report= \chapter defined).
  145. % (Note that \par must not appear inside \@ifundefined, therefore this
  146. % indirect approach is taken.)
  147.  
  148. \@ifundefined{chapter}{\@redefinemaketitle}{\@redefinechapter}
  149.  
  150. % Re-defintion of the \marginpar command to use always the left margin
  151. % (never the right margin). Be careful that Marginpars do not come to
  152. % near to each other!
  153.  
  154. \def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox
  155.     \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
  156. %-  \if@twocolumn
  157. %-      \if@firstcolumn \@tempcnta\m@ne \fi
  158. %-  \else
  159. %-    \if@mparswitch
  160. %-       \ifodd\c@page \else\@tempcnta\m@ne \fi
  161. %-    \fi
  162. %-    \if@reversemargin \@tempcnta -\@tempcnta \fi
  163. %-  \fi
  164.     \@tempcnta\m@ne % always to left margin <---
  165.     \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi
  166.     \@tempdima\@mparbottom \advance\@tempdima -\@pageht
  167.        \advance\@tempdima\ht\@marbox \ifdim\@tempdima >\z@
  168.        \@warning{Marginpar on page \thepage\space moved}\else\@tempdima\z@ \fi
  169.     \global\@mparbottom\@pageht \global\advance\@mparbottom\@tempdima
  170.        \global\advance\@mparbottom\dp\@marbox
  171.        \global\advance\@mparbottom\marginparpush
  172.     \advance\@tempdima -\ht\@marbox
  173.     \global\ht\@marbox\z@ \global\dp\@marbox\z@
  174.     \vskip -\@pagedp \vskip\@tempdima\nointerlineskip
  175.     \hbox to\columnwidth
  176.       {\ifnum \@tempcnta >\z@
  177.           \hskip\columnwidth \hskip\marginparsep
  178.         \else \hskip -\marginparsep \hskip -\marginparwidth \fi
  179.        \box\@marbox \hss}
  180.     \vskip -\@tempdima
  181.     \nointerlineskip
  182.     \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}}
  183.  
  184. % Special Marginpars:
  185. %   \marginlabel{X} puts X into a flushright Marginpar.
  186. %                   To be used like description-items or short
  187. %                   \subsubsection* headings.
  188. %   \attention      puts ! --> to the left of the text.
  189. %                   To mark an important piece of text.
  190. %   \seealso{X}     puts a small ---> X to the very left.
  191. %                   To mark a reference within the text.
  192. % These three commands start with an empty \mbox, i.e. they can be used
  193. % before the first word of a paragraph and still have the desired
  194. % effect, namely that the marginal stuff appears next to the first
  195. % line of this paragraph, not at the last line of the previous one.
  196. % They end with \ignorespaces, i.e. blanks (spaces) after the argument's
  197. % } are allowed and do NOT appear in the printed text.
  198. % Like all \marginpar's, they cannot be used in math mode or inside boxes.
  199.  
  200. \def\marginlabel#1{\mbox{}\marginpar{\raggedleft #1}\ignorespaces}
  201. \def\attention{\mbox{}\marginpar{\raggedleft \large\bf ! $\rightarrow$}}
  202. \def\seealso#1{\mbox{}\marginpar{\small $\rightarrow$ #1}\ignorespaces}
  203.  
  204. % The description environment is redefined such that the item labels use
  205. % the whole left margin (and are in roman, right bound, with colon).
  206. %  \labelwidth = \leftmarginwidth + previous\@totalleftmargin +
  207. %                + new\leftmargin - \labelsep
  208. % \descriptioncolontrue and -false can be used to select whether a colon
  209. % is added to the item label.
  210. % \descriptionlefttrue and -false can be used to select whether the item labels
  211. % are set left bound or right bound.
  212.  
  213. \newif\ifdescriptioncolon \descriptioncolontrue
  214. \newif\ifdescriptionleft \descriptionleftfalse
  215. \def\descriptionlabel#1{\ifdescriptionleft\else \hfil \fi
  216.      \rm #1\ifdescriptioncolon :\fi
  217.      \ifdescriptionleft \hfil \fi}
  218. \def\description{\list{}{\labelsep=\marginparsep
  219.      \labelwidth=\leftmarginwidth \advance\labelwidth by \@totalleftmargin
  220.      \advance\labelwidth by \leftmargin \advance\labelwidth by -\labelsep
  221.      \let\makelabel=\descriptionlabel}}
  222. \let\enddescription=\endlist
  223.  
  224. % The maxipage environment is a minipage that uses the \fullwidth,
  225. % with \hrules above and below. Marginpars are not allowed.
  226. % To be used for wide tables, long math equations, and the like.
  227. % It cannot be split across pages.
  228. % It can be used in floats, e.g. like
  229. %    \begin{table}\begin{maxipage}
  230. %    ... a wide table ... \caption{the caption}
  231. %    \end{maxipage}\end{table}
  232. % \maxipageruletrue and -false can be used to select whether \hrule's are
  233. % added to the minpage.
  234.  
  235. \newif\ifmaxipagerule \maxipageruletrue
  236. \def\maxipage{\par % (here a \vskip\parskip will happen by the final \par)
  237.               \mbox{}\kern-\leftmarginwidth \kern-\@totalleftmargin
  238.               \begin{minipage}{\fullwidth}
  239.               \medskip \ifmaxipagerule \hrule\medskip \fi
  240.               \parskip = 0.5\baselineskip % <--- same as outside minipage
  241.               \def\marginpar{\typeout{Marginpar not allowed within Maxipage.}}}
  242. \def\endmaxipage{\par \vskip\parskip
  243.                  \medskip \ifmaxipagerule \hrule\medskip \fi
  244.                  \end{minipage}\par}
  245.  
  246. % The fullpage environment changes the page layout such that normal text
  247. % and all environments use the \fullwidth. Marginpars are not allowed.
  248. % Both \begin{fullpage} and \end{fullpage} start a new page before switching
  249. % to the other layout.
  250. % To be used for one or several special pages where the full line length is
  251. % needed.
  252.  
  253. \def\fullpage{\clearpage \leftmarginwidth\z@ \textwidth=\fullwidth
  254.               \oddsidemargin=\z@ \evensidemargin\z@
  255.               \hsize=\fullwidth \linewidth=\fullwidth \columnwidth=\fullwidth
  256.               \def\marginpar{\typeout{Marginpar not allowed within Fullpage.}}}
  257. \def\endfullpage{\clearpage}
  258.  
  259. % The example environment is a verse enironment with \tt font and with
  260. % trying to avoid page breaks at the \begin{example}. Lines in the example
  261. % should be separated by \\*.
  262.  
  263. \def\example{\@beginparpenalty=\@highpenalty \verse \tt }
  264. \let\endexample=\endverse
  265.  
  266. % Page Styles:
  267. % The pagestyles plain, headings and myheadings are redefined and new
  268. % pagestyles footings and myfootings are defined, which all use the
  269. % \fullwidth, with \thepage on the outer side of the (odd/even) page
  270. % and some with a \hrule below the head line or above the foot line.
  271. % My favourite is
  272. %    \pagestyle{myfootings}
  273. %    \markboth{the title of the paper}{the title of the paper}
  274. % (Note that the \markboth is not destroyed by the new \part command.)
  275.  
  276. % The pagestyles headings and myheadings set \topmargin to \emptyfoottopmargin.
  277. % The pagestyles footings and myfootings set \topmargin to \emptyheadtopmargin.
  278. % The pagestyles empty and plain do not change \topmargin.
  279. % Therefore, within one document,
  280. % - you may switch between headings, myheadings, empty, and plain,
  281. % - or you may switch between footings, myfootings, empty, and plain,
  282. % - but you should not mix (my)headings with (my)footings pages.
  283.  
  284. % As a compromise between article (section+subsection) and report
  285. % (chapter+section), \sectionmark (without uppercase) will be put on
  286. % both side pages in the headings and footings style (neither chapter
  287. % nor subsection).
  288.  
  289. \def\ps@plain{\let\@mkboth\@gobbletwo
  290.      \def\@oddhead{}\def\@evenhead{}%
  291.      \def\@oddfoot{\rm\hfil\thepage}%
  292.      \def\@evenfoot{\hss \hbox to \fullwidth{\normalsize\rm\thepage\hfil}}}
  293.  
  294. \if@twoside         % If two-sided printing.
  295. \def\ps@headings{\let\@mkboth\markboth \topmargin\emptyfoottopmargin
  296. \def\@oddfoot{}\def\@evenfoot{}%       No feet.
  297. \def\@evenhead{\hss\vbox{\hsize=\fullwidth
  298.                \hbox to \fullwidth{\normalsize\rm\thepage \hfil
  299.                                    \small\sl \leftmark}%
  300.                \vskip 3pt}}%                                     % RUM
  301. \def\@oddhead{\hss\vbox{\hsize=\fullwidth
  302.                \hbox to \fullwidth{\small\sl \rightmark \hfil
  303.                                    \normalsize\rm\thepage}%
  304.                \vskip 3pt}}%                                     % RUM
  305. \def\sectionmark##1{\markboth
  306.   {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}%
  307.   {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}}%
  308. \def\subsectionmark##1{}}
  309. \else               % If one-sided printing.
  310. \def\ps@headings{\let\@mkboth\markboth \topmargin\emptyfoottopmargin
  311. \def\@oddfoot{}\def\@evenfoot{}%     No feet.
  312. \def\@oddhead{\hss\vbox{\hsize=\fullwidth
  313.                \hbox to \fullwidth{\small\sl \rightmark \hfil
  314.                                    \normalsize\rm\thepage}%
  315.                \vskip 3pt}}%                                     % RUM
  316. \def\sectionmark##1{\markright {{\ifnum \c@secnumdepth >\z@
  317.     \thesection\hskip 1em\relax \fi ##1}}}}
  318. \fi
  319.  
  320. \if@twoside         % If two-sided printing.
  321. \def\ps@footings{\let\@mkboth\markboth \topmargin\emptyheadtopmargin
  322. \def\@oddhead{}\def\@evenhead{}%       No heads.
  323. \def\@evenfoot{\hss\vbox{\hsize=\fullwidth \vskip 3pt            % RUM
  324.                \hbox to \fullwidth{\normalsize\rm\thepage \hfil
  325.                                    \small\sl\leftmark}}}%
  326. \def\@oddfoot{\hss\vbox{\hsize=\fullwidth \vskip 3pt             % RUM
  327.               \hbox to \fullwidth{\small\sl\rightmark \hfil
  328.                                   \normalsize\rm\thepage}}}%
  329. \def\sectionmark##1{\markboth
  330.  {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}%
  331.  {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}}%
  332. \def\subsectionmark##1{}}
  333. \else               % If one-sided printing.
  334. \def\ps@footings{\let\@mkboth\markboth \topmargin\emptyheadtopmargin
  335. \def\@oddhead{}\def\@evenhead{}%     No heads.
  336. \def\@oddfoot{\hss\vbox{\hsize=\fullwidth \vskip 3pt             % RUM
  337.               \hbox to \fullwidth{\small\sl\rightmark \hfil
  338.                                   \normalsize\rm\thepage}}}%
  339. \def\sectionmark##1{\markright {{\ifnum \c@secnumdepth >\z@
  340.     \thesection\hskip 1em\relax \fi ##1}}}}
  341. \fi
  342.  
  343. \def\ps@myheadings{\let\@mkboth\@gobbletwo \topmargin\emptyfoottopmargin
  344. \def\@evenhead{\hss\vbox{\hsize=\fullwidth
  345.                \hbox to \fullwidth{\normalsize\rm\thepage \hfil
  346.                                    \small\sl\leftmark}%
  347.                \vskip 3pt}}%                                      % RUM
  348. \def\@oddhead{\hss\vbox{\hsize=\fullwidth
  349.                \hbox to \fullwidth{\small\sl\rightmark \hfil
  350.                                    \normalsize\rm\thepage}%
  351.                \vskip 3pt}}%                                      % RUM
  352. \def\@oddfoot{}\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}}
  353.  
  354. \def\ps@myfootings{\let\@mkboth\@gobbletwo \topmargin\emptyheadtopmargin
  355. \def\@evenfoot{\hss\vbox{\hsize=\fullwidth \vskip 3pt             % RUM
  356.                \hbox to \fullwidth{\normalsize\rm\thepage \hfil
  357.                                    \small\sl\leftmark}}}%
  358. \def\@oddfoot{\hss\vbox{\hsize=\fullwidth \vskip 3pt              % RUM
  359.               \hbox to \fullwidth{\small\sl\rightmark \hfil
  360.                                   \normalsize\rm\thepage}}}%
  361. \def\@oddhead{}\def\@evenhead{}\def\sectionmark##1{}\def\subsectionmark##1{}}
  362.  
  363. % The \condbreak{length} command is defined for conditional pagebreaks:
  364. % If less then length vertical space remains on the current page, then
  365. % a new page is started. This means that the following stuff remains
  366. % together (either on the current or the next page).
  367.  
  368. \def\condbreak#1{\vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax}
  369.  
  370. % The \noparskip command is defined to take away the vertical Parskip,
  371. % just like \noindent takes away the horizontal Parindent.
  372.  
  373. \def\noparskip{\vskip-\parskip}
  374.  
  375. % Correction of a LaTeX bug that occurs when marginpars and footnotes
  376. % appear on the same page (by Chris Rowley, TUGboat 9/2 Aug.88)
  377.  
  378. \def\@specialoutput{\ifnum\outputpenalty > -\@Mii
  379.     \@doclearpage
  380.   \else
  381.     \ifnum \outputpenalty <-\@Miii
  382.        \ifnum\outputpenalty<-\@MM \deadcycles\z@\fi
  383.        \global\setbox\@holdpg\vbox{\unvbox\@cclv}
  384.     \else \setbox\@tempboxa\box\@cclv
  385.         \@pagedp\dp\@holdpg \@pageht\ht\@holdpg
  386.         \unvbox\@holdpg
  387. %-      \ifvoid\footins\else\advance\@pageht\ht\footins
  388. %-        \advance\@pageht\skip\footins \advance\@pagedp\dp\footins
  389. %-        \insert\footins{\unvbox\footins}\fi
  390.         \@next\@currbox\@currlist{\ifnum\count\@currbox >\z@
  391. % moved --->
  392.                 \ifvoid\footins\else\advance\@pageht\ht\footins
  393.                   \advance\@pageht\skip\footins \advance\@pagedp\dp\footins
  394.                   \insert\footins{\unvbox\footins}\fi
  395.             \@addtocurcol\else
  396. % moved and changed --->
  397.                 \ifvoid\footins\else
  398.                   \insert\footins{\unvbox\footins}\fi
  399.             \@addmarginpar\fi}\@latexbug
  400.     \ifnum \outputpenalty <\z@ \penalty \z@ \fi
  401.   \fi\fi}
  402.  
  403.  
  404. % Setting of the Layout Parameters and Dimensions:
  405. % ------------------------------------------------
  406.  
  407. % Switch to \onecolumn and disable \twocolumn.
  408. \onecolumn
  409. \let\onecolumn=\relax
  410. \def\twocolumn{\typeout{Twocolumn not allowed with Refman.}}
  411.  
  412. % Horizontal Layout:
  413. %     \fullwidth = \leftmarginwidth + \textwidth
  414. %     \odd&evensidemargin = \leftmarginwidth - 3mm
  415. %                           (DIN-A4 paper is about 6mm narrower than 8.5 Inch.)
  416. %     \marginparwidth = \leftmarginwidth - \marginparsep
  417.  
  418. % \textwidth, \columnwidth, \linewidth remain unchanged from art10...rep12
  419. \fullwidth=6.5in
  420. \leftmarginwidth=\fullwidth \advance\leftmarginwidth by -\textwidth
  421. \oddsidemargin=\leftmarginwidth \advance\oddsidemargin by -3mm
  422. \evensidemargin=\oddsidemargin
  423. \marginparwidth=\leftmarginwidth \advance\marginparwidth by -\marginparsep
  424.  
  425. % The horizontal layout can be changed in the preamble with the command
  426. %     \setleftmarginwidth{length}
  427. % This sets \leftmarginwidth=length and \textwidth=\fullwidth-<length> .
  428. % Example: \setleftmarginwidth{2.5in} ---> 2.5 : 4 = 4 : 6.5
  429.  
  430. \newdimen\templength@
  431. \def\setleftmarginwidth#1{\templength@=#1\relax
  432.     \leftmarginwidth=\templength@
  433.     \textwidth=\fullwidth \advance\textwidth by -\templength
  434.     \oddsidemargin=\leftmarginwidth \advance\oddsidemargin by -3mm
  435.     \evensidemargin=\oddsidemargin
  436.     \marginparwidth=\leftmarginwidth \advance\marginparwidth by -\marginparsep
  437.     \hsize=\textwidth \linewidth=\textwidth \columnwidth=\textwidth }
  438.  
  439. % Vertical Layout (for DIN-A4 paper):
  440. %     The Top Margin is made smaller by 4.5 baselineskips,
  441. %     the Head and Foot separations are increased by 0.5 baselineskips each,
  442. %     the Textheight is increased by 10 lines.
  443. %     On DIN-A4 paper (which is about 2 lines higher than 11 Inch), this
  444. %     makes the Bootom Margin equal to the Top Margin.
  445. %     \raggedbottom is switched on (even for twoside).
  446. %     With some pagestyles, the page contents are shifted up or down a bit,
  447. %     by using \emptyheadtopmargin or \emptyfoottopmargin, respectively.
  448.  
  449. \advance\topmargin by -4.5\baselineskip
  450. \advance\headsep by 0.5\baselineskip
  451. \advance\footskip by 0.5\baselineskip
  452. \advance\textheight by 10\baselineskip
  453. \@colht=\textheight \@colroom=\textheight
  454. \emptyheadtopmargin=\topmargin \advance\emptyheadtopmargin by -1\baselineskip
  455. \emptyfoottopmargin=\topmargin \advance\emptyfoottopmargin by 1\baselineskip
  456. \raggedbottom
  457.  
  458. % Zero minimal vertical separation between Marginpars (because we use a lot
  459. % of them, and all must find room above each other).
  460.  
  461. \marginparpush=\z@
  462.  
  463. % Paragraph Layout:
  464. %     Zero Parindent and non-zero Parskip. The stretchable glue in \parskip
  465. %     helps LaTeX in finding the best place for page breaks.
  466.  
  467. \parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt
  468. \parindent=\z@
  469.  
  470. % Redefinition of the vertical spacing in the list environments
  471. % to use the same as \parskip in all relevant places (normalsize only):
  472. %   \parsep = \parskip
  473. %   \itemsep = \z@ % add nothing to \parskip between items
  474. %   \topsep = \z@ % add nothing to \parskip before first item
  475.  
  476. \def\@listI{\leftmargin\leftmargini
  477.    \topsep\z@ \parsep\parskip \itemsep\z@}
  478. \let\@listi\@listI
  479. \@listi
  480.  
  481. \def\@listii{\leftmargin\leftmarginii
  482.    \labelwidth\leftmarginii\advance\labelwidth-\labelsep
  483.    \topsep\z@ \parsep\parskip \itemsep\z@}
  484.  
  485. \def\@listiii{\leftmargin\leftmarginiii
  486.     \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
  487.     \topsep\z@ \parsep\parskip \itemsep\z@}
  488.  
  489. % Note that listiv, listv and listvi don't change vertical parameters.
  490.  
  491. % begin RUM supplement
  492. \newlength{\@fnindent}       % Hanging indent
  493. \setlength{\@fnindent}{1em}
  494. %
  495. \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize
  496.         \advance\@tempdima-\@fnindent
  497.         \parshape \@ne \@fnindent \@tempdima}
  498.         \par \parindent 1em\noindent
  499.         \hspace*{-\@fnindent} $\@thefnmark.\:$#1}
  500. %
  501. % Thin space between text and footnotemark
  502. \def\@makefnmark{\hbox{$^{\,\@thefnmark}$}}
  503. %
  504. % Long rule between text and footnotes
  505. \def\footnoterule{\kern-3\p@
  506.   \hrule width \columnwidth
  507.   \kern 2.6\p@}
  508. % End RUM supplement
  509.  
  510. % Switch on the new version of the plain pagestyle.
  511. \pagestyle{plain}
  512.  
  513. % This is the end of REFMAN.STY.
  514. \endinput
  515.